今天做了dialogfragment,程式碼如下
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_marginLeft="50dp"
    android:layout_marginRight="50dp"
    android:orientation="vertical">
   <EditText
       android:id="@+id/account"
       android:layout_width="match_parent"
       android:layout_height="wrap_content"
       android:hint="account"/>
   <EditText
       android:id="@+id/password"
       android:layout_width="match_parent"
       android:layout_height="wrap_content"
       android:hint="password"/>
   <LinearLayout
       android:layout_width="match_parent"
       android:layout_height="wrap_content"
       android:orientation="horizontal">
      <Button
          android:id="@+id/login"
          android:layout_width="0dp"
          android:layout_height="wrap_content"
          android:layout_weight="0.5"
          android:text="login"/>
      <Button
          android:id="@+id/cancel"
          android:layout_width="0dp"
          android:layout_height="wrap_content"
          android:layout_weight="0.5"
          android:text="cancel"/>
   </LinearLayout>
</LinearLayout>

然後在activity中這樣調用
val fm = supportFragmentManager
val dialog = FragmentDialog()
dialog.show(fm,"Blossom")
結果如下
但是在activity中架構會變得不好看,正在研究好的方式在viewmodel中呈現